1. Field of the Invention
This invention relates generally to data processing systems and, more particularly, to data processing systems in which a plurality of processing units share system resources. When a plurality of processing units have a requirement for a shared resource, a method of assigning the resource unit to a processing unit must be provided, typically in the form of arbitration apparatus and procedures.
2. Description of the Related Art
A common type of data processing system architecture is to provide the data processing system having a plurality of central processing units with at least one shared resource. In a bus-oriented data processing system , the shared resource is the system bus over which the central processing units communicate with a main memory unit, input/output units, etc. Similarly, the main memory unit, the input/output units or other subsystems can have a requirement of access to the system bus. Each subsystem that can have a requirement for access to the system bus (or shared resource in the general data processing system architecture) will be referred to as a processing unit. In the data processing system in which the subsystems of the data processing unit are coupled by means of an electronic switch, sometimes referred to as the system interface unit, a plurality of central processing units can attempt to gain access to the same shared resource (i.e., main memory unit, input/output units, etc.). The input/output units can similarly have a requirement to gain access to a memory unit and, indeed, central processing units can have a requirement to gain access to another central processing unit. A decision process for determining the appropriate access to a shared resource must be provided. In a data processing system, such a process is generally referred to as an arbitration process.
One of the problems associated with the arbitration procedure is that access to the shared resource can be more important for certain processing units. To accommodate this difference in importance, priorities can be assigned to each processing unit and the processing unit with a requirement for access to the shared resource and having the highest priority can acquire the access to the shared resource. However, a conflicting requirement is that access to the shared resource must be equitably distributed. Otherwise, the processing unit with the highest priority can monopolize the shared resource. The allocation of access to the system bus is critical to the successful operation of the data processing system, the allocation being the mechanism by which each subsystem provides and receives data.
A need has therefore existed for apparatus and method for an arbitration technique that can dynamically reassign priority levels to each processing unit after an arbitration event, the reassignment being performed by each processing unit.